1
반복자로 통합된 탐색
AI037Lesson 6
00:00

넓은 풍경을 탐색하는 상황을 상상해 보세요. 직선 고속도로(예: vector)를 운전하거나, 꼬불꼬불한 숲길(예: list)를 걷는 경우, 통합된 지도가 필요합니다. C++에서는 그 지도가 바로 반복자입니다.

일반화 프로그래밍의 다리

반복자는 컨테이너 요소를 탐색하기 위한 일반화된 메커니즘으로 작용하며, 알고리즘과 데이터 구조 사이의 연결고리 역할을 합니다. 일관된 인터페이스(begin/end)를 사용함으로써, C++는 일반화 프로그래밍을 달성합니다. 이는 프로그래머가 기저 메모리 구조를 알지 않아도 다양한 컬렉션에 동일한 로직을 적용할 수 있게 해줍니다.

⚠️ 반복자 무효화: 중요: 반복자를 사용해 컨테이너를 탐색하는 모든 루프는 해당 컨테이너에 요소를 추가해서는 안 됩니다. 이를 수행하면 기존 반복자가 '오래된'(무효화된) 상태가 되어 정의되지 않은 동작이나 프로그램 충돌을 초래할 수 있습니다.
's''o''m''e'begin()end() (끝 다음 위치)

표준 연산

반복자인 begin 은 첫 번째 요소를 가리키는 반복자를 반환하고, end센티넬 마지막 요소의 다음 위치를 나타냅니다.

  • *iter: 요소에 접근하기 위해 참조를 해제합니다.
  • ++iter / --iter: 이동입니다.
  • == / !=: 위치를 확인하기 위한 동등성 연산자입니다.
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>